table of contents
PAPI_library_init(3) | PAPI | PAPI_library_init(3) |
NAME¶
PAPI_library_init - initialize the PAPI library. PAPI_is_initialized - check for initialization.
SYNOPSIS¶
C Interface
#include <papi.h> int PAPI_library_init(int version); int PAPI_is_initialized(void);
Fortran Interface
#include fpapi.h PAPIF_library_init(C_INT check) PAPIF_is_initialized(C_INT check)
DESCRIPTION¶
PAPI_library_init() initializes the PAPI library. It must be called before any low level PAPI functions can be used. If your application is making use of threads PAPI_thread_init(3) must also be called prior to making any calls to the library other than PAPI_library_init().
PAPI_is_initialized() returns the status of the PAPI library. The PAPI library can be in one of three states, as described under RETURN VALUES.
ARGUMENTS¶
version -- upon initialization, PAPI checks the argument against the internal value of PAPI_VER_CURRENT when the library was compiled. This guards against portability problems when updating the PAPI shared libraries on your system.
RETURN VALUES¶
PAPI_library_init : On success, this function returns PAPI_VER_CURRENT . A positive return code other than PAPI_VER_CURRENT indicates a library version mis-match. A negative error code indicates an initialization error.
PAPI_is_initialized :
PAPI_NOT_INITED
-- PAPI has not been initialized
PAPI_LOW_LEVEL_INITED
-- PAPI_library_init has been called
PAPI_HIGH_LEVEL_INITED
-- a high level PAPI function has been called
ERRORS¶
PAPI_is_initialized never returns an error.
PAPI_library_init can return the following:
- PAPI_EINVAL
- papi.h is different from the version used to compile the PAPI library.
- PAPI_ENOMEM
- Insufficient memory to complete the operation.
- PAPI_ESBSTR
- This substrate does not support the underlying hardware.
- PAPI_ESYS
- A system or C library call failed inside PAPI, see the errno variable.
EXAMPLES¶
int retval; /* Initialize the library */ retval = PAPI_library_init(PAPI_VER_CURRENT); if (retval != PAPI_VER_CURRENT && retval > 0) {
fprintf(stderr,"PAPI library version mismatch!\n");
exit(1); } if (retval < 0)
handle_error(retval); retval = PAPI_is_initialized(); if (retval != PAPI_LOW_LEVEL_INITED)
handle_error(retval);
BUGS¶
If you don't call this before using any of the low level PAPI calls, your application could core dump.
SEE ALSO¶
September, 2004 | PAPI Programmer's Reference |